package com.teamone.etl.taskmanager.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.teamone.etl.taskmanager.entity.EtlTaskInfo;

/**
 任务信息表(EtlTaskInfo)表服务接口

 @author makejava
 @since 2021-01-08 20:42:00 */
public interface EtlTaskInfoService extends IService<EtlTaskInfo> {

    /**
     创建任务
     @param etlTaskInfo 任务信息
     */
    void createTask(EtlTaskInfo etlTaskInfo);

    /**
     查找任务名称是否已存在
     @param name 任务名称
     @return 存在为1
     */
    int findByNameNotRepeat(String name);

    /**
     * 模糊分页查询
     *
     * @param weight        任务权重级别 0紧急任务 1高 2中 3低
     * @param name          任务名称
     * @param status        任务状态   0待执行    1可执行       2正在执行       3执行完成
     * @param page          当前页
     * @param size          每页显示条数
     * @return   部分数据(id,NAME,weight,status,proportion任务完成度)
     */
    PageInfo<EtlTaskInfo> taskSearch(Integer weight, String name, Integer status, Integer page, Integer size);

    /**
     * 根据任务id删除任务
     * @param id 任务id
     * @return 删除是否成功
     */
    boolean deleteById(String id);

    /**
     修改状态
     @param id 任务id
     */
    void updateStatus(String id);

    /**
     * 任务执行
     * @param id
     */
    void executeTask(String id);
}